package com.zhiwei.codesecurity.service.checkmarx;

import java.io.FileNotFoundException;
import java.io.IOException;

public interface ICheckMarxService {

    /**
     * 提交扫描任务
     * @param projectId
     * 项目ID
     * @param interfaceId
     * 接口工具ID
     * @throws FileNotFoundException
     * @throws IOException
     */
    void submitScanTask(long projectId, String interfaceId, long scheduleJobId);

    /**
     * 定时任务：获取表t_taskscan_results中task_status状态为0（未提交）的任务，
     * 当CheckMarx引擎中队列数没有超出最大可排队数时，提交任务。
     */
    void submitScanTaskToCK() throws FileNotFoundException, IOException;

    /**
     * 定时更新扫描任务的相关执行状态；（根据CheckMarx服务返回的状态进行更新）
     */
    void updateScanTaskStatus();

    /**
     * 提交生成扫描报告任务
     */
    void createScanTaskReport();

    /**
     * 获取扫描报告
     * @param filePath
     * 扫描报告保存路径
     * @throws Exception
     */
    void getScanTaskReport(String filePath);

    /**
     * 取消当前扫描任务
     * @param interfaceId
     * @param runId
     */
    void cancelScan(Long interfaceId, String runId);
}
